import java.util.Stack;

    //void push(int x) 将元素 x 推到队列的末尾
    //int pop() 从队列的开头移除并返回元素
    //int peek() 返回队列开头的元素
    //boolean empty() 如果队列为空，返回 true ；否则，返回 false

public class MyQueue {
//    public Stack<Integer> stack1;
//    public Stack<Integer> stack2;
//
//    public int size;
//
//    public MyQueue() {
//        stack1 = new Stack<>();
//        stack2 = new Stack<>();
//    }
//
//    public void push(int x) {
//        stack1.push(x);
//        size++;
//    }
//
//    public int pop() {
//        if (empty()) {
//            return -1;
//        }
//        int val = 0;
//        if (!stack2.isEmpty()) {
//            val = stack2.pop();
//            size--;
//            return val;
//        } else {
//            for (int i = 0; i < size - 1; i++) {
//                stack2.push(stack1.pop());
//            }
//            val = stack1.pop();
//            size--;
//            return val;
//        }
//    }
//
//    public int peek() {
//        if (empty()) {
//            return -1;
//        }
//
//        int val = 0;
//        if (!stack1.isEmpty()) {
//            for (int i = 0; i < size - 1; i++) {
//                stack2.push(stack1.pop());
//            }
//            val = stack1.peek();
//            stack2.push(stack1.pop());
//            return val;
//        } else {
//            val = stack2.peek();
//            return val;
//        }
//
//    }
//
//    public boolean empty() {
//        return stack1.isEmpty() && stack2.isEmpty();
//    }

    public Stack<Integer> stack1;
    public Stack<Integer> stack2;

    public int size;

    public MyQueue() {
        stack1 = new Stack<>();
        stack2 = new Stack<>();
    }

    public void push(int x) {
        stack1.push(x);
        size++;
    }

    public int pop() {
        if (empty()) {
            return -1;
        }

        int val = 0;
        if (!stack2.isEmpty()) {
            val = stack2.pop();
            size--;
            return val;
        } else {
            int len = stack1.size();
            for (int i = 0; i < len; i++) {
                stack2.push(stack1.pop());
            }
            val = stack2.pop();
            size--;
            return val;
        }
    }

    public int peek() {
        if (empty()) {
            return -1;
        }

        int val = 0;
        if (!stack2.isEmpty()) {
            val = stack2.peek();
            return val;
        } else {
            int len = stack1.size();
            for (int i = 0; i < len; i++) {
                stack2.push(stack1.pop());
            }
            val = stack2.peek();
            return val;
        }
    }

    public boolean empty() {
        return stack1.isEmpty() && stack2.isEmpty();
    }

    public static void main(String[] args) {
        MyQueue myQueue = new MyQueue();
        myQueue.push(1);
        myQueue.push(2);
//        myQueue.push(3);
//        myQueue.push(4);

        System.out.println(myQueue.peek());

//        myQueue.push(5);

        System.out.println(myQueue.pop());
        System.out.println(myQueue.pop());

    }
}
